iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 8
1
自我挑戰組

一日一CPE系列 第 8

[Day8]10106: Product

  • 分享至 

  • xImage
  •  

考題日期:2016/03/22
題號:10106
星等:2
語言:C++


題目:
https://ithelp.ithome.com.tw/upload/images/20190924/20120937YwUYJsrRRa.png


題意:
將輸入的兩個大數字進行相乘。


程式:

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string a,b;
    int A[250]={0},B[250]={0};
    while(getline(cin,a))
    {
        getline(cin,b);
        for(int i = 0 ;i < a.length();i++)
            A[i] = a[a.length()-i-1] - '0';
        for(int i = 0 ;i < b.length();i++)
            B[i] = b[b.length()-i-1] - '0';
        int C[501]={0};
        for(int i = 0 ;i < a.length();i++)
        {
            for(int j = 0 ;j < b.length();j++)
            {
                int x = A[i] * B[j];
                C[i+j] += x;
                C[i+j+1] += C[i+j] / 10;
                C[i+j] = C[i+j] % 10;
            }
        }
        int key = a.length() + b.length();
        bool k = false;
        for(int i = key ;i >=0;i--)
        {
            if(C[i] != 0)
                k = true;
            if(k)
                cout<<C[i];
        }
        cout<<endl;
    }
    return 0;
}


測資:
https://ithelp.ithome.com.tw/upload/images/20190924/20120937W01hPEzmxj.png


上一篇
[Day7]11538: Chess Queen
下一篇
[Day9]11942: Lumberjack Sequencing
系列文
一日一CPE30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言